# 人工智能 1906A 裴云鹏

# （二）创建源码文件Bankcard，按要求完成以下步骤：（每题3分，30分）
# 1.	写一个银行卡类，类名为Bankcard
class Bankcard(object):

    # 定义一个类属性，country,设置为“China”
    country = 'China'

    # 2.	写一个对象构造方法，默认值传参，对象属性及相应的默认值如下:
    # 卡名name（默认为‘’），存款money(默认为０)
    def __init__(self, name='', money=0):
        self.name = name
        self.money = money

    # 3.	写一个打印魔法方法，返回银行卡信息。格式：
    # 我的ＸＸ（name）银行卡现有存款ＸＸ（money）元
    def __str__(self):
        return f'我的{self.name}银行卡现有存款{self.money}元'

    # 4.	写一个存钱方法save，参数为存入的钱数。
    def save(self, m):
        if m <= 0:  # 为了健壮性
            return
        self.money += m

    # 5.	写一个登录方法login(),无参有返，返回值为布尔值。账户：user
    # 密码：１２３４５，当用户输入用户名和密码正确时，登录成功，返回Ｔrue,否则False
    @staticmethod
    def login():
        user = input('请输入用户名：')
        pwd = input('请输入密码：')
        if 'user' == user and '12345' == pwd:
            return True
        else:
            return False

    # 6.	写一个消费方法pay()。
    # １)	首先在函数体内调用登录方法login()。
    # ２)	登陆通过以后再调消费存款。每次消费一百元，直到存款为零。
    def pay(self):
        if not Bankcard.login():
            print('登陆失败！')
            return
        else:
            print('登陆成功！')
        if self.money <= 0:  # 为了健壮性
            return
        m = 100
        if self.money < m:  # 为了健壮性
            m = self.money
        self.money -= m
        print(f'消费{m}元，存款{self.money}元')


# 7.	创建一个对象gs, 卡名为‘工商银行’，存款使用默认值
gs = Bankcard('工商银行')

# 8.	调用打印方法输出gs
print(gs)

# 9.	调用方法存入５００元
gs.save(500)

# 10.	调用消费方法pay()
gs.pay()
